home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / tcp_ip / jnos / psi110f / readme.lnx < prev    next >
Text File  |  1993-09-16  |  9KB  |  186 lines

  1. This file (j109linux.zip) contains the patches and new files required to bring
  2. JNOS 1.09 up under Linux.  An earlier version was tested partially under SCO
  3. Unix as well.  Portability to other Unixes is unknown but is only likely to
  4. work on i386/i486.
  5.  
  6. Instructions:
  7.  
  8. 0) Get patch, if you don't have it already.
  9. 1) Unpack jnos08df.zip and new109.zip in your source directory.
  10. 2) Unpack this file in the same directory.  No files should be overwritten
  11.    except config.h.  You may want to copy the new config.h to kf8nh.h.
  12. 3) Edit config.h to change the set of features you want to compile in.
  13.    WARNING:  DO NOT TURN ON ANY OPTIONS NOT ALREADY TURNED ON.  You may, if
  14.    you wish, turn options *off*.
  15. 4) Double-check the Makefile.  It should already be correct for Linux, except
  16.    that you may want to turn off -static and -g3 (with -g3 the executable is
  17.    nearly 3MB, most of which is debugging information) and turn on -O.
  18. 5) Type "make -f Makefile".  If you rename makefile (the original JNOS makefile
  19.    unpacks to the lowercase name) to makefile.dos you can leave off the
  20.    "-f Makefile".
  21.  
  22. I would appreciate it if DOS JNOS users would also test this, with the DOS
  23. makefile.  I have tried to make sure that the patched source will still work
  24. under DOS, but I cannot test this.  I would also like the DOS users to test
  25. the non-Linux-specific changes:  MONITOR, AXBCSTR, and TTYCALL, all of which
  26. are specified in config.h instead of the makefile.  The source does contain
  27. several non-Linux-specific bug fixes, the most important of which is to at:
  28. if two at jobs go off at the same time, memory will be severely corrupted in
  29. the stock 1.09 code.
  30.  
  31. The file BSAHAX describes my changes in some detail, along with a list of
  32. additional modifications planned.
  33.  
  34. Please send bug (and success, if any) reports to bsa@kf8nh.wariat.org.
  35.  
  36. ++Brandon
  37.  
  38. ----- BSAHAX --------
  39.  
  40. *** WG7J ***
  41. Most mods have been added to 'stock' JNOS code.
  42. If something has been changed it is noted in the same style as this note.
  43. Johan, WG7J
  44. ************
  45.  
  46. Modifications to NOS 921129/PA0GRI/WG7J 1.09 by KF8NH:  (ver 0.6)
  47.  
  48. * Tracing.  A new mode "monitor" has been added which uses a compressed display
  49.   format and displays AX.25 Text packets the way they look to users.  This is
  50.   not JNOS-specific, although it all uses the modified trace routines which
  51.   enable Unix to do asynchronous tracing.  Define MONITOR in config.h to
  52.   enable this.  This uses the previously undefined flag combination
  53.   TRACE_ASCII|TRACE_HEX.
  54.   #define MONITOR
  55.  
  56. * AX.25 ttycall.  This is equivalent to an ordinary PBBS keyboard-to-keyboard
  57.   connect; AX.25 connects to this call get fed directly to ttylink.
  58.   #define TTYCALL
  59.  
  60. * 3-argument "ax25 bc".  You can now optionally specify a string to broadcast.
  61.   I use this to get separate beacons on each interface, since one is on an IP
  62.   frequency and the other is a user frequency.
  63.   #define AXBCSTR
  64.  
  65. *** WG7J ***
  66.   jnos 1.10 x4 has this included in the 'ifconfig <iface> bctext "text"'
  67.   command. A little different, but same effect.
  68. ************
  69.  
  70.  
  71. Support for Linux (386 *ix clone) and other POSIX-supporting *ix:
  72.  
  73. Compiling with -DLINUX and -DUNIX causes JNOS to be built for the Linux
  74. environment.  This has quite a few differences in terms of implementation
  75. but (hopefully) few, if any, user-visible differences.
  76.  
  77. * Display is asynchronous:  each session window continues to be updated even
  78.   if it is not current.  Page mode becomes a bit more important with this
  79.   change.
  80.  
  81. * The display management is done via curses.  There are also some hooks for a
  82.   future modification allowing separate sessions to be passed to an external
  83.   session manager.
  84.  
  85. * F1-F10 are supported via terminfo.  (Linux's termcap-based curses is too
  86.   buggy for NOS to function; it dumps core when it tries to scroll.)  They
  87.   have the same meanings as under the DOS version.  The arrow keys are also
  88.   supported, and command history works.
  89.  
  90. * You can't run JNOS out of /etc/rc; it has to be interactive.  This will
  91.   change in the future.
  92.  
  93. * Device types other than asy are NOT supported.  These will require kernel
  94.   device drivers.
  95.  
  96. * Interfacing to the Linux TCP/IP system is NOT supported.  I consider this a
  97.   potential security hole and will not consider adding this until I work out
  98.   how to avoid misuse.
  99.  
  100. * Connects get the JNOS BBS; no provision for system logins is made, and none
  101.   will be made.  This is an even bigger potential security hole than TCP/IP
  102.   gatewaying; that is why I chose to port JNOS instead of running WAMPES,
  103.   which has already been ported to Linux.  (Note that, because of the way
  104.   WAMPES manages users, a malicious user could play a trick like setting their
  105.   MYCALL to the name of a (non-root) user.)
  106.  
  107. * A completely different means of scheduling timers and checking for I/O is
  108.   used, which is both more efficient and more responsive than the DOS method.
  109.   Instead of using a 55-ms timer tick and checking for timers and I/O on each
  110.   tick, the system sleeps on a select() on the asy ports and keyboard with a
  111.   select timeout.  Timers cause the select timeout to be updated; when the
  112.   timer is scheduled to go off, the select() will return regardless of pending
  113.   I/O and the timer process will be scheduled.  (The timer process is always
  114.   scheduled when the select() returns, since on most systems there is no way
  115.   to tell if the timeout was about to expire when select() woke up.)  This
  116.   should not cause any changes in the actual operation of JNOS, but makes it
  117.   much less of a CPU hog; it should also enable JNOS to function with high
  118.   speed devices, which I consider essential since the future of kf8nh.ampr.org
  119.   is likely to include a PackeTwin and a 9600 baud or even 56Kbaud modem.
  120.   (Yes, I will be designing a kernel driver and JNOS/Linux support at that
  121.   time.)  ---Note:  a particularly slow operation will cause delays in I/O
  122.   that aren't seen in the DOS version.  "dir" in the directory containing the
  123.   JNOS source is one way to see this.  I'm still trying to decide the best way
  124.   to handle this.  The cause isn't my code; it's the business of using a
  125.   linear search and insertion to "sort" the directory list as it is received
  126.   from findfirst/findnext, which is from the original code.  But if I change
  127.   it to be efficient, it won't work with 64K segments.  Sigh.
  128.  
  129. The Linux support is at least partially portable, as Linux's native API is the
  130. POSIX P1003.1 specification.  However, POSIX leaves several things unspecified
  131. and others optional; for example, the asy management is POSIX, but I don't
  132. expect to see DOS (usefully) supporting tcsetattr() in the near future :-)
  133. select() is POSIX optional, but is utterly essential to JNOS.  The directory
  134. utilities use statfs(), of which at least four (!) variants exist, none POSIX.
  135. And so on.
  136.  
  137. The syntax for attaching an asy port is:
  138.  
  139. attach asy <device> <ignored> ax25|ppp|slip|nrs ...
  140.  
  141. the rest being the same as for the DOS version except that the "f" flag to
  142. activate the 16550 FIFO will be ignored:  under Unix, that is the serial
  143. driver's responsibility.  The device should not specify the "/dev" prefix.
  144. (This will change in the future.)  JNOS will not currently share a port with
  145. a dialout program, which will also change once carrier detect support is added.
  146.  
  147. TODO:
  148.  
  149. * Implement fkeys.  This will take some work, as I can't use KEY_* from
  150.   ncurses (it blocks).  On the other hand, since I've already *got* key trie
  151.   code, all I really need is tigetstr().  This also means that fkey can take
  152.   key names from terminfo instead of cryptic numbers (not that the terminfo
  153.   names are necessarily all that much better, mind you.... :-)
  154.  
  155. * Implement session manager support and detached consoles.  The folks who have
  156.   to wait for me to start X so they can digi through me will undoubtedly thank
  157.   me for this :-)  N.B. This will take real work.  Don't expect it soon.
  158.  
  159. * Look into compacting "monitor" even more.  This includes compacting
  160.   the trace output for things I haven't looked at yet, like arcnet.  I don't
  161.   think some things can be reasonably compacted, though (e.g. node lists).
  162.  
  163. * Implement RTS/CTS flow control.  Doable, but I can't test it.
  164.  
  165. * Implement DTR(=DCD).  Once again, SCO is a bottleneck (actually, System V in
  166.   general):  you can't distinguish between a no-delay read with no data avail-
  167.   able and a read with no carrier present.  Sigh.
  168.  
  169. * There have been some requests for SHELL to work.  Since I always have either
  170.   a VC or an xterm available, I haven't bothered to make it work... it is not
  171.   all that hard, however, all I need is an "inhibit refresh" flag and a stub
  172.   to write a single byte to a pipe after the subshell exits, with request_io()
  173.   on the pipe to catch the exit and re-enable updates.  (Also keyboard, of
  174.   course.)
  175.  
  176. * Use a Unix format for ftp's LIST and NLST commands.  I'm holding off until
  177.   I decide how to best map DOS attributes:  if I do this it will be usable
  178.   under both, since some folks have requested a format that will work with
  179.   point-and-shoot ftp client front-ends.
  180.  
  181. * Crossband digipeat aliases.  Currently, if you set a separate call on each
  182.   interface that call can be used to crossband digipeat, but locally the
  183.   convention is to use TOxxx aliases.  Ex. TO370 (gate to 223.70 BBS link),
  184.   TO501 (145.01 user channel), etc.
  185.  
  186.